#!/bin/bash

<<EOF
    算术运算符
    原生bash不支持简单的数学运算, 只能通过其他命令来实现, 例如 awk 和 expr, expr 最常用。
    expr 是一款表达式计算工具, 使用它能完成表达式的求值操作。
    1: expr命令允许在命令行上处理数学表达式, 但是特别笨拙;
    2: 使用 方括号 处理

EOF






num=2+2
echo $num     #2+2  根本没有进行运算

num=$num+2
echo  "num  is  $num"   #num  is   2+2+2  根本没有进行运算

#-------------------------------

num=`expr 2 + 2`
echo "expr 2 + 2= $num"


echo  使用  expr 进行处理
#使用  expr ，  但是这种老方式最好不用,  第一麻烦， 第二容易出错
#在IDE 中 提示到 Use $(...) notation instead of legacy backticks `...`
val=`expr $a + $b`
echo  "a+b =  $val"



val=`expr $a - $b`
echo "a-b = $val "

#  使用  老版本的 expr  表达式  乘号(*)前边必须加反斜杠(\)才能实现乘法运算；
val=`expr $a \* $b`
echo “a\*b = $val”

val=`expr $a / $b`
echo "a/b = $val "

val=`expr  $a % $b`
echo "a%b  = $val"




a=10
b=20



# num=$(  num + 2 )    #error  不要使用单括号, 单括号是运行命令的
echo  "(  num + 2 )  =  $num   error  不要使用单括号, 单括号是运行命令的"

num=$((  num + 2 ))
echo  "使用双括号 ((  )) 才能够进行运算 !  num  is  $num"

#  MAC 中 shell 的 expr 语法是：$((表达式)) , 直接使用 双括号包起来 , 清爽方便 ；
val=$((a+b))
echo  "$((a+b)) =  $val"





echo  "使用  新版 expr 表达式  $((  )) 进行处理"
val=$(($a - $b))
echo "a-b = $val "


val=$((a * b ))
echo "a*b = $val"



val=$((  b /  a))
echo "b/a = $val "


val=$(( $a % $b ))
echo "a%b  = $val"



